package com.idlecode.statics;

import com.idlecode.config.template.TemplateInfo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @program: IdleCode
 * @description
 * @author: rongjuwei
 * @create: 2024-07-10 16:05
 **/
public class TemplateInfo3Util {

    protected static final Map<String, String> info = new HashMap<>();

    public static final String codeBasePath = "src/main/java";

    static {
        info.put("格式三", "代码格式一、二、三只有controller层代码不一致。\n" +
                "格式三的详细说明：" +
                "    catch代码块里统一处理异常，并且打印该次请求的参数\n" +
                "\n" +
                "    @ResponseBody\n" +
                "    @RequestMapping(\"listPage.do\")\n" +
                "    public void listPage(Page page, HttpServletRequest request) {\n" +
                "        ResultBean res = new ResultBean();\n" +
                "        res.setResult(\"1\");\n" +
                "        try {\n" +
                "            dictDictionaryClassService.getListPage(page);\n" +
                "            res.setMessage(\"成功\");\n" +
                "            res.setResult(\"1\");\n" +
                "            res.setData(page);\n" +
                "        } catch (Exception e) {\n" +
                "            res.error(e, request);\n" +
                "        }\n" +
                "        printWriter(res);\n" +
                "    }");
    }

    public static List<TemplateInfo> getTemplates(List<String> selectedGenFileItems) {
        List<TemplateInfo> templateList = new ArrayList<>();
        for (String selectedGenFileItem : selectedGenFileItems) {
            if ("Controller.java".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format3/Controller.java.ftl");
                templateInfo.setGeneratorPath("${packageName}/${packagePath}/controller/${ClassName}Controller.java");
                templateList.add(templateInfo);
            }
            if ("Entity.java".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format3/Entity.java.ftl");
                templateInfo.setGeneratorPath("${packageName}/${packagePath}/entity/${ClassName}Entity.java");
                templateList.add(templateInfo);
            }
            if ("BaseEntity.java".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format3/BaseEntity.java.ftl");
                templateInfo.setGeneratorPath("${packageName}/${packagePath}/entity/base/${ClassName}BaseEntity.java");
                templateList.add(templateInfo);
            }
            if ("Mapper.java".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format3/Mapper.java.ftl");
                templateInfo.setGeneratorPath("${packageName}/${packagePath}/mapper/${ClassName}Mapper.java");
                templateList.add(templateInfo);
            }
            if ("Mapper.xml".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format3/Mapper.xml.ftl");
                templateInfo.setGeneratorPath("${packageName}/${packagePath}/mapper/${ClassName}Mapper.xml");
                templateList.add(templateInfo);
            }
            if ("BaseMapper.xml".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format3/BaseMapper.xml.ftl");
                templateInfo.setGeneratorPath("${packageName}/${packagePath}/mapper/base/${ClassName}BaseMapper.xml");
                templateList.add(templateInfo);
            }
            if ("Service.java".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format3/Service.java.ftl");
                templateInfo.setGeneratorPath("${packageName}/${packagePath}/service/${ClassName}Service.java");
                templateList.add(templateInfo);
            }
            if ("ServiceImpl.java".equals(selectedGenFileItem)) {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.setTemplateName("format3/ServiceImpl.java.ftl");
                templateInfo.setGeneratorPath("${packageName}/${packagePath}/service/impl/${ClassName}ServiceImpl.java");
                templateList.add(templateInfo);
            }
        }
        return templateList;
    }
}
